The present invention is generally related to computer networking. More specifically, the present invention includes a mechanism that provides application-layer information persistence and exchange. This mechanism is scalable, generically applicable, transparently-distributed and based on the tuple-space model.
Most modern computer systems are designed to use a layered approach to interprocess communication and networking. The layered approach subdivides the tasks associated with interprocess communication and networking into levels of abstraction. This has been found to be an effective method for reducing the complexity and increasing the reliability of programs and systems that use interprocess communication.
The International Organization for Standardization (ISO) has promulgated a commonly used standard that embodies a layered approach of this type. This standard, know as the ISO Network Reference Model, is based on seven different levels of abstraction. The seven layers are known as the application, presentation, session, transport, network, data link and physical layers.
The communications protocols used in the lower levels of the ISO Network Reference Model (i.e., the transport, network, data link and physical layers) are relatively well defined. As a result, these protocols tend to be used, for almost all applications that perform interprocess communication.
Unfortunately, this type of homogeneity does not really exist at higher levels of the ISO Network Reference Model. Entities at these levels (i.e., the application, presentation and session layers) tend to interact with their peers using special-purpose protocols. Not surprisingly, this type of one off use does little to further the overall effectiveness of the ISO Network Reference Model. Instead, there is a tendency towards increased complexity and lost opportunities for software reuse.
The ISO Network Reference Model is, unfortunately, not the only networking environment that exhibits this lack of homogeneity. In fact, these symptoms are generally present (to a greater or lesser extent) in all layered interprocess communication and networking systems.
For these and other reasons, a need exits for more generic methods that provide interprocess communication at higher levels of layered interprocess communication and networking systems. Methods of this type would preferable provide uniform interprocess communication protocols at the application level of the ISO Network Reference Model. These methods would also preferably be scalable to work in networks of all sizes without significant performance degradation.
The present invention includes a method and apparatus for providing application-layer information persistence and exchange. For an exemplary embodiment, an information space is constructed to span a group of one or more server systems. The information space is based on the tuple-space paradigm first introduced for the Linda coordination model. A coordination entity manages storage of tuples within the information space. The coordination entity determines where in the information space tuples are stored. The coordination entity makes this determination both at initial tuple storage and as tuples are moved to achieve load balancing and other goals.
Applications access stored tuples by requesting the tuple from their local servers. If the local server knows where the tuple is stored, the local server forwards the request directly to the storing server. In the alternative, (i.e., where the local server does not know where a tuple is stored), the local server queries the coordination entity for the tuple""s location. The local server then uses the query result to request the tuple from the storing server. In this case the local server also records the location of the tuple for future reference. This allows the local server to directly request the tuple on subsequent accesses.
In some cases, a tuple will have moved after a local server has noted its previous location. If that local server requests the moved tuple, the previously storing server will receive the request. In this case, the previously storing server generates a re-route exception. The re-route exception causes the local server to query the coordination entity to determine the tuple""s new location. This new location is then noted by the local server for future requests.
The use of tuples and tuple matching allows applications to use a common, flexible, lightweight format for information persistence and interchange. The applications may be local or remote and of heterogeneous types.
Advantages of the invention will be set forth, in part, in the description that follows and, in part, will be understood by those skilled in the art from the description herein. The advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the appended claims and equivalents.